在介紹完雙重指標以後,那麼今天來介紹陣列與指標上的應用
那麼一樣照慣例以例子搭配圖會比較好理解
void f(int **rr, int **pp, int a[], int *p, int *aa[]){
int *q;
int *b[3];
q = p;
p = aa[0];
b[1] = *(a+1);
a[1] = (**rr) + (*p) + (*(a+2));
*pp = p + 1;
*rr = *pp + 1;
*(a+1) = **pp + a[*p-3];
*(a+2) = **rr + **pp;
}
int main(){
int a[]={1,3,5,7,9};
int *p = a+1,*q=a+2;
int **pp=&p;
int *b[3];
b[0]=p;
b[1]=a+2;
a[2]=a+3;
f(pp,&q,a+2,p,b);
}
這邊我們一樣拆成兩個部分來講解
第一部分是main body的變數宣告以及傳到Function f後的變數宣告
可以看到這邊稍微複雜一點,是陣列及指標的搭配使用
其中這邊會看到一個新朋友(?
int *b[3];
這個看似陣列又有指標的東西是什麼呢?
其實他就是陣列但是元素是指標資料型態
跟int a[]={1,3,5,7,9};不太一樣
這一樣是陣列但是元素是整數資料型態
第二部分呢則是進去Function f後的變數設定
為橘色的線
我將它分為8個step